#include "stdlib.h"
#include "stdio.h"

//test

//define a return type for return status
typedef enum{
	FAILURE,
	SUCCESS
}RETURN_STATUS;

struct _ListNode;
typedef struct _ListNode* p_ListNode;
typedef struct _ListNode ListNode;

typedef void (*ListDataPrintFunc)(void* data);

p_ListNode get_node(p_ListNode list, int index);
RETURN_STATUS get_element(p_ListNode list, int index, void* data);
int get_length(p_ListNode list);
p_ListNode create_node(void* data);
RETURN_STATUS insert_node(p_ListNode list, int index, void* data);
RETURN_STATUS delete_node(p_ListNode list, int index, void* data);
void destroy_link_list(p_ListNode list);
void print_list(p_ListNode list, ListDataPrintFunc print_data);
